// Copyright 2013 The Walk Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import (
	"log"
)

import (
	"walk"
	. "walk/declarative"
)

func main() {
	//声明一个文本框对象
	var te *walk.TextEdit
	//主窗体参数设置
	if _, err := (MainWindow{
		Title:   "Walk Clipboard Example",
		//最小的尺寸,但是默认打开的尺寸会根据内部元素有延伸;要设置默认打开尺寸用Size成员对象.
		MinSize: Size{300, 200},
		Size:Size{500,500},
		//布局的方式:竖向VBox/横向HBox/表格Grid/流式Flow
		Layout:  VBox{},
		//成员部件的设置
		Children: []Widget{
			//第一个按钮
			PushButton{
				//要显示的文字
				Text: "Copy",
				//点击事件
				OnClicked: func() {
					//设置剪贴板内容
					if err := walk.Clipboard().SetText(te.Text()); err != nil {
						//遇到错误就输出到日志
						log.Print("Copy: ", err)
					}
					log.Print("Set Copy: ", te.Text())
				},
			},
			//第二个按钮
			PushButton{
				Text: "Paste",
				OnClicked: func() {
					if text, err := walk.Clipboard().Text(); err != nil {
						log.Print("Paste: ", err)
					} else {
						//设置文本框中的文字
						te.SetText(text)
					}
				},
			},
			//文本框的位置分配给指定的对象
			TextEdit{
				AssignTo: &te,
			},
		},
		//运行程序,遇到错误就输出致命提示
	}).Run(); err != nil {
		log.Fatal(err)
	}
}
